home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / benchmarks / itc / cc1.spur / insn-recog.c < prev    next >
Encoding:
C/C++ Source or Header  |  1989-08-30  |  22.8 KB  |  1,152 lines

  1. /* Generated automatically by the program `genrecog'
  2. from the machine description file `md'.  */
  3.  
  4. #include "config.h"
  5. #include "rtl.h"
  6. #include "insn-config.h"
  7. #include "recog.h"
  8.  
  9. /* `recog' contains a decision tree
  10.    that recognizes whether the rtx X0 is a valid instruction.
  11.  
  12.    recog returns -1 if the rtx is not valid.
  13.    If the rtx is valid, recog returns a nonnegative number
  14.    which is the insn code number for the pattern that matched.
  15.    This is the same as the order in the machine description of
  16.    the entry that matched.  This number can be used as an index into
  17.    insn_templates and insn_n_operands (found in insn-output.c)
  18.    or as an argument to output_insn_hairy (also in insn-output.c).  */
  19.  
  20. rtx recog_operand[MAX_RECOG_OPERANDS];
  21.  
  22. rtx *recog_operand_loc[MAX_RECOG_OPERANDS];
  23.  
  24. rtx *recog_dup_loc[MAX_DUP_OPERANDS];
  25.  
  26. char recog_dup_num[MAX_DUP_OPERANDS];
  27.  
  28. extern rtx recog_addr_dummy;
  29.  
  30. #define operands recog_operand
  31.  
  32. int
  33. recog_1 (x0, insn)
  34.      register rtx x0;
  35.      rtx insn;
  36. {
  37.   register rtx x1, x2, x3, x4, x5;
  38.   rtx x6, x7, x8, x9, x10, x11;
  39.   int tem;
  40.  L11:
  41.   x1 = XEXP (x0, 1);
  42.   x2 = XEXP (x1, 0);
  43.  switch (GET_CODE (x2))
  44.   {
  45.   case EQ:
  46.   if (1)
  47.     goto L12;
  48.   break;
  49.   case NE:
  50.   if (1)
  51.     goto L21;
  52.   break;
  53.   case GT:
  54.   if (1)
  55.     goto L30;
  56.   break;
  57.   case GTU:
  58.   if (1)
  59.     goto L39;
  60.   break;
  61.   case LT:
  62.   if (1)
  63.     goto L48;
  64.   break;
  65.   case LTU:
  66.   if (1)
  67.     goto L57;
  68.   break;
  69.   case GE:
  70.   if (1)
  71.     goto L66;
  72.   break;
  73.   case GEU:
  74.   if (1)
  75.     goto L75;
  76.   break;
  77.   case LE:
  78.   if (1)
  79.     goto L84;
  80.   break;
  81.   case LEU:
  82.   if (1)
  83.     goto L93;
  84.   break;
  85.   }
  86.   goto ret0;
  87.  L12:
  88.   x3 = XEXP (x2, 0);
  89.   if (x3 == cc0_rtx && 1)
  90.     goto L13;
  91.   goto ret0;
  92.  L13:
  93.   x3 = XEXP (x2, 1);
  94.   if (x3 == const0_rtx && 1)
  95.     goto L14;
  96.   goto ret0;
  97.  L14:
  98.   x2 = XEXP (x1, 1);
  99.   if (GET_CODE (x2) == LABEL_REF && 1)
  100.     goto L15;
  101.   if (x2 == pc_rtx && 1)
  102.     goto L105;
  103.   goto ret0;
  104.  L15:
  105.   x3 = XEXP (x2, 0);
  106.   if (1)
  107.     { recog_operand[0] = x3; goto L16; }
  108.   goto ret0;
  109.  L16:
  110.   x2 = XEXP (x1, 2);
  111.   if (x2 == pc_rtx && 1)
  112.     return 2;
  113.   goto ret0;
  114.  L105:
  115.   x2 = XEXP (x1, 2);
  116.   if (GET_CODE (x2) == LABEL_REF && 1)
  117.     goto L106;
  118.   goto ret0;
  119.  L106:
  120.   x3 = XEXP (x2, 0);
  121.   if (1)
  122.     { recog_operand[0] = x3; return 12; }
  123.   goto ret0;
  124.  L21:
  125.   x3 = XEXP (x2, 0);
  126.   if (x3 == cc0_rtx && 1)
  127.     goto L22;
  128.   goto ret0;
  129.  L22:
  130.   x3 = XEXP (x2, 1);
  131.   if (x3 == const0_rtx && 1)
  132.     goto L23;
  133.   goto ret0;
  134.  L23:
  135.   x2 = XEXP (x1, 1);
  136.   if (GET_CODE (x2) == LABEL_REF && 1)
  137.     goto L24;
  138.   if (x2 == pc_rtx && 1)
  139.     goto L114;
  140.   goto ret0;
  141.  L24:
  142.   x3 = XEXP (x2, 0);
  143.   if (1)
  144.     { recog_operand[0] = x3; goto L25; }
  145.   goto ret0;
  146.  L25:
  147.   x2 = XEXP (x1, 2);
  148.   if (x2 == pc_rtx && 1)
  149.     return 3;
  150.   goto ret0;
  151.  L114:
  152.   x2 = XEXP (x1, 2);
  153.   if (GET_CODE (x2) == LABEL_REF && 1)
  154.     goto L115;
  155.   goto ret0;
  156.  L115:
  157.   x3 = XEXP (x2, 0);
  158.   if (1)
  159.     { recog_operand[0] = x3; return 13; }
  160.   goto ret0;
  161.  L30:
  162.   x3 = XEXP (x2, 0);
  163.   if (x3 == cc0_rtx && 1)
  164.     goto L31;
  165.   goto ret0;
  166.  L31:
  167.   x3 = XEXP (x2, 1);
  168.   if (x3 == const0_rtx && 1)
  169.     goto L32;
  170.   goto ret0;
  171.  L32:
  172.   x2 = XEXP (x1, 1);
  173.   if (GET_CODE (x2) == LABEL_REF && 1)
  174.     goto L33;
  175.   if (x2 == pc_rtx && 1)
  176.     goto L123;
  177.   goto ret0;
  178.  L33:
  179.   x3 = XEXP (x2, 0);
  180.   if (1)
  181.     { recog_operand[0] = x3; goto L34; }
  182.   goto ret0;
  183.  L34:
  184.   x2 = XEXP (x1, 2);
  185.   if (x2 == pc_rtx && 1)
  186.     return 4;
  187.   goto ret0;
  188.  L123:
  189.   x2 = XEXP (x1, 2);
  190.   if (GET_CODE (x2) == LABEL_REF && 1)
  191.     goto L124;
  192.   goto ret0;
  193.  L124:
  194.   x3 = XEXP (x2, 0);
  195.   if (1)
  196.     { recog_operand[0] = x3; return 14; }
  197.   goto ret0;
  198.  L39:
  199.   x3 = XEXP (x2, 0);
  200.   if (x3 == cc0_rtx && 1)
  201.     goto L40;
  202.   goto ret0;
  203.  L40:
  204.   x3 = XEXP (x2, 1);
  205.   if (x3 == const0_rtx && 1)
  206.     goto L41;
  207.   goto ret0;
  208.  L41:
  209.   x2 = XEXP (x1, 1);
  210.   if (GET_CODE (x2) == LABEL_REF && 1)
  211.     goto L42;
  212.   if (x2 == pc_rtx && 1)
  213.     goto L132;
  214.   goto ret0;
  215.  L42:
  216.   x3 = XEXP (x2, 0);
  217.   if (1)
  218.     { recog_operand[0] = x3; goto L43; }
  219.   goto ret0;
  220.  L43:
  221.   x2 = XEXP (x1, 2);
  222.   if (x2 == pc_rtx && 1)
  223.     return 5;
  224.   goto ret0;
  225.  L132:
  226.   x2 = XEXP (x1, 2);
  227.   if (GET_CODE (x2) == LABEL_REF && 1)
  228.     goto L133;
  229.   goto ret0;
  230.  L133:
  231.   x3 = XEXP (x2, 0);
  232.   if (1)
  233.     { recog_operand[0] = x3; return 15; }
  234.   goto ret0;
  235.  L48:
  236.   x3 = XEXP (x2, 0);
  237.   if (x3 == cc0_rtx && 1)
  238.     goto L49;
  239.   goto ret0;
  240.  L49:
  241.   x3 = XEXP (x2, 1);
  242.   if (x3 == const0_rtx && 1)
  243.     goto L50;
  244.   goto ret0;
  245.  L50:
  246.   x2 = XEXP (x1, 1);
  247.   if (GET_CODE (x2) == LABEL_REF && 1)
  248.     goto L51;
  249.   if (x2 == pc_rtx && 1)
  250.     goto L141;
  251.   goto ret0;
  252.  L51:
  253.   x3 = XEXP (x2, 0);
  254.   if (1)
  255.     { recog_operand[0] = x3; goto L52; }
  256.   goto ret0;
  257.  L52:
  258.   x2 = XEXP (x1, 2);
  259.   if (x2 == pc_rtx && 1)
  260.     return 6;
  261.   goto ret0;
  262.  L141:
  263.   x2 = XEXP (x1, 2);
  264.   if (GET_CODE (x2) == LABEL_REF && 1)
  265.     goto L142;
  266.   goto ret0;
  267.  L142:
  268.   x3 = XEXP (x2, 0);
  269.   if (1)
  270.     { recog_operand[0] = x3; return 16; }
  271.   goto ret0;
  272.  L57:
  273.   x3 = XEXP (x2, 0);
  274.   if (x3 == cc0_rtx && 1)
  275.     goto L58;
  276.   goto ret0;
  277.  L58:
  278.   x3 = XEXP (x2, 1);
  279.   if (x3 == const0_rtx && 1)
  280.     goto L59;
  281.   goto ret0;
  282.  L59:
  283.   x2 = XEXP (x1, 1);
  284.   if (GET_CODE (x2) == LABEL_REF && 1)
  285.     goto L60;
  286.   if (x2 == pc_rtx && 1)
  287.     goto L150;
  288.   goto ret0;
  289.  L60:
  290.   x3 = XEXP (x2, 0);
  291.   if (1)
  292.     { recog_operand[0] = x3; goto L61; }
  293.   goto ret0;
  294.  L61:
  295.   x2 = XEXP (x1, 2);
  296.   if (x2 == pc_rtx && 1)
  297.     return 7;
  298.   goto ret0;
  299.  L150:
  300.   x2 = XEXP (x1, 2);
  301.   if (GET_CODE (x2) == LABEL_REF && 1)
  302.     goto L151;
  303.   goto ret0;
  304.  L151:
  305.   x3 = XEXP (x2, 0);
  306.   if (1)
  307.     { recog_operand[0] = x3; return 17; }
  308.   goto ret0;
  309.  L66:
  310.   x3 = XEXP (x2, 0);
  311.   if (x3 == cc0_rtx && 1)
  312.     goto L67;
  313.   goto ret0;
  314.  L67:
  315.   x3 = XEXP (x2, 1);
  316.   if (x3 == const0_rtx && 1)
  317.     goto L68;
  318.   goto ret0;
  319.  L68:
  320.   x2 = XEXP (x1, 1);
  321.   if (GET_CODE (x2) == LABEL_REF && 1)
  322.     goto L69;
  323.   if (x2 == pc_rtx && 1)
  324.     goto L159;
  325.   goto ret0;
  326.  L69:
  327.   x3 = XEXP (x2, 0);
  328.   if (1)
  329.     { recog_operand[0] = x3; goto L70; }
  330.   goto ret0;
  331.  L70:
  332.   x2 = XEXP (x1, 2);
  333.   if (x2 == pc_rtx && 1)
  334.     return 8;
  335.   goto ret0;
  336.  L159:
  337.   x2 = XEXP (x1, 2);
  338.   if (GET_CODE (x2) == LABEL_REF && 1)
  339.     goto L160;
  340.   goto ret0;
  341.  L160:
  342.   x3 = XEXP (x2, 0);
  343.   if (1)
  344.     { recog_operand[0] = x3; return 18; }
  345.   goto ret0;
  346.  L75:
  347.   x3 = XEXP (x2, 0);
  348.   if (x3 == cc0_rtx && 1)
  349.     goto L76;
  350.   goto ret0;
  351.  L76:
  352.   x3 = XEXP (x2, 1);
  353.   if (x3 == const0_rtx && 1)
  354.     goto L77;
  355.   goto ret0;
  356.  L77:
  357.   x2 = XEXP (x1, 1);
  358.   if (GET_CODE (x2) == LABEL_REF && 1)
  359.     goto L78;
  360.   if (x2 == pc_rtx && 1)
  361.     goto L168;
  362.   goto ret0;
  363.  L78:
  364.   x3 = XEXP (x2, 0);
  365.   if (1)
  366.     { recog_operand[0] = x3; goto L79; }
  367.   goto ret0;
  368.  L79:
  369.   x2 = XEXP (x1, 2);
  370.   if (x2 == pc_rtx && 1)
  371.     return 9;
  372.   goto ret0;
  373.  L168:
  374.   x2 = XEXP (x1, 2);
  375.   if (GET_CODE (x2) == LABEL_REF && 1)
  376.     goto L169;
  377.   goto ret0;
  378.  L169:
  379.   x3 = XEXP (x2, 0);
  380.   if (1)
  381.     { recog_operand[0] = x3; return 19; }
  382.   goto ret0;
  383.  L84:
  384.   x3 = XEXP (x2, 0);
  385.   if (x3 == cc0_rtx && 1)
  386.     goto L85;
  387.   goto ret0;
  388.  L85:
  389.   x3 = XEXP (x2, 1);
  390.   if (x3 == const0_rtx && 1)
  391.     goto L86;
  392.   goto ret0;
  393.  L86:
  394.   x2 = XEXP (x1, 1);
  395.   if (GET_CODE (x2) == LABEL_REF && 1)
  396.     goto L87;
  397.   if (x2 == pc_rtx && 1)
  398.     goto L177;
  399.   goto ret0;
  400.  L87:
  401.   x3 = XEXP (x2, 0);
  402.   if (1)
  403.     { recog_operand[0] = x3; goto L88; }
  404.   goto ret0;
  405.  L88:
  406.   x2 = XEXP (x1, 2);
  407.   if (x2 == pc_rtx && 1)
  408.     return 10;
  409.   goto ret0;
  410.  L177:
  411.   x2 = XEXP (x1, 2);
  412.   if (GET_CODE (x2) == LABEL_REF && 1)
  413.     goto L178;
  414.   goto ret0;
  415.  L178:
  416.   x3 = XEXP (x2, 0);
  417.   if (1)
  418.     { recog_operand[0] = x3; return 20; }
  419.   goto ret0;
  420.  L93:
  421.   x3 = XEXP (x2, 0);
  422.   if (x3 == cc0_rtx && 1)
  423.     goto L94;
  424.   goto ret0;
  425.  L94:
  426.   x3 = XEXP (x2, 1);
  427.   if (x3 == const0_rtx && 1)
  428.     goto L95;
  429.   goto ret0;
  430.  L95:
  431.   x2 = XEXP (x1, 1);
  432.   if (GET_CODE (x2) == LABEL_REF && 1)
  433.     goto L96;
  434.   if (x2 == pc_rtx && 1)
  435.     goto L186;
  436.   goto ret0;
  437.  L96:
  438.   x3 = XEXP (x2, 0);
  439.   if (1)
  440.     { recog_operand[0] = x3; goto L97; }
  441.   goto ret0;
  442.  L97:
  443.   x2 = XEXP (x1, 2);
  444.   if (x2 == pc_rtx && 1)
  445.     return 11;
  446.   goto ret0;
  447.  L186:
  448.   x2 = XEXP (x1, 2);
  449.   if (GET_CODE (x2) == LABEL_REF && 1)
  450.     goto L187;
  451.   goto ret0;
  452.  L187:
  453.   x3 = XEXP (x2, 0);
  454.   if (1)
  455.     { recog_operand[0] = x3; return 21; }
  456.   goto ret0;
  457.  ret0: return -1;
  458. }
  459.  
  460. int
  461. recog_2 (x0, insn)
  462.      register rtx x0;
  463.      rtx insn;
  464. {
  465.   register rtx x1, x2, x3, x4, x5;
  466.   rtx x6, x7, x8, x9, x10, x11;
  467.   int tem;
  468.  L1:
  469.   x1 = XEXP (x0, 0);
  470.   if (x1 == cc0_rtx && 1)
  471.     goto L2;
  472.   if (x1 == pc_rtx && 1)
  473.     goto L10;
  474.  L383:
  475.   if (1)
  476.     { recog_operand[0] = x1; goto L384; }
  477.  L198:
  478.  switch (GET_MODE (x1))
  479.   {
  480.   case QImode:
  481.   if (general_operand (x1, QImode))
  482.     { recog_operand[0] = x1; goto L199; }
  483.  L240:
  484.   if (register_operand (x1, QImode))
  485.     { recog_operand[0] = x1; goto L241; }
  486.   break;
  487.   case HImode:
  488.   if (general_operand (x1, HImode))
  489.     { recog_operand[0] = x1; goto L214; }
  490.  L248:
  491.   if (register_operand (x1, HImode))
  492.     { recog_operand[0] = x1; goto L249; }
  493.   break;
  494.   case SImode:
  495.   if (GET_CODE (x1) == ZERO_EXTRACT && 1)
  496.     goto L223;
  497.  L189:
  498.   if (general_operand (x1, SImode))
  499.     { recog_operand[0] = x1; goto L190; }
  500.  L192:
  501.   if (register_operand (x1, SImode))
  502.     { recog_operand[0] = x1; goto L193; }
  503.   break;
  504.   case DImode:
  505.   if (general_operand (x1, DImode))
  506.     { recog_operand[0] = x1; goto L235; }
  507.   break;
  508.   case SFmode:
  509.   if (general_operand (x1, SFmode))
  510.     { recog_operand[0] = x1; goto L238; }
  511.  L303:
  512.   if (register_operand (x1, SFmode))
  513.     { recog_operand[0] = x1; goto L304; }
  514.   break;
  515.   case DFmode:
  516.   if (general_operand (x1, DFmode))
  517.     { recog_operand[0] = x1; goto L229; }
  518.  L298:
  519.   if (register_operand (x1, DFmode))
  520.     { recog_operand[0] = x1; goto L299; }
  521.   break;
  522.   }
  523.   goto ret0;
  524.  L2:
  525.   x1 = XEXP (x0, 1);
  526.   if (GET_CODE (x1) == MINUS && 1)
  527.     goto L3;
  528.  L7:
  529.   if (register_operand (x1, SImode))
  530.     { recog_operand[0] = x1; return 1; }
  531.   x1 = XEXP (x0, 0);
  532.   goto L383;
  533.  L3:
  534.   x2 = XEXP (x1, 0);
  535.   if (nonmemory_operand (x2, SImode))
  536.     { recog_operand[0] = x2; goto L4; }
  537.   goto L7;
  538.  L4:
  539.   x2 = XEXP (x1, 1);
  540.   if (nonmemory_operand (x2, SImode))
  541.     { recog_operand[1] = x2; return 0; }
  542.   goto L7;
  543.  L10:
  544.   x1 = XEXP (x0, 1);
  545.   if (GET_CODE (x1) == IF_THEN_ELSE && 1)
  546.     goto L11;
  547.   if (GET_CODE (x1) == LABEL_REF && 1)
  548.     goto L371;
  549.   x1 = XEXP (x0, 0);
  550.   goto L383;
  551.  L11:
  552.   tem = recog_1 (x0, insn);
  553.   if (tem >= 0) return tem;
  554.   x1 = XEXP (x0, 0);
  555.   goto L383;
  556.  L371:
  557.   x2 = XEXP (x1, 0);
  558.   if (1)
  559.     { recog_operand[0] = x2; return 75; }
  560.   x1 = XEXP (x0, 0);
  561.   goto L383;
  562.  L384:
  563.   x1 = XEXP (x0, 1);
  564.   if (GET_CODE (x1) == CALL && 1)
  565.     goto L394;
  566.   x1 = XEXP (x0, 0);
  567.   goto L198;
  568.  L394:
  569.   x2 = XEXP (x1, 0);
  570.   if (GET_CODE (x2) == MEM && GET_MODE (x2) == SImode && 1)
  571.     goto L395;
  572.  L385:
  573.   if (memory_operand (x2, SImode))
  574.     { recog_operand[1] = x2; goto L386; }
  575.   x1 = XEXP (x0, 0);
  576.   goto L198;
  577.  L395:
  578.   x3 = XEXP (x2, 0);
  579.   if (GET_MODE (x3) == SImode && 1)
  580.     { recog_operand[1] = x3; goto L396; }
  581.   goto L385;
  582.  L396:
  583.   x2 = XEXP (x1, 1);
  584.   if (general_operand (x2, SImode))
  585.     { recog_operand[2] = x2; if (GET_CODE (operands[1]) == SYMBOL_REF) return 80; }
  586.   x2 = XEXP (x1, 0);
  587.   goto L385;
  588.  L386:
  589.   x2 = XEXP (x1, 1);
  590.   if (general_operand (x2, SImode))
  591.     { recog_operand[2] = x2; return 78; }
  592.   x1 = XEXP (x0, 0);
  593.   goto L198;
  594.  L199:
  595.   x1 = XEXP (x0, 1);
  596.   if (general_operand (x1, QImode))
  597.     { recog_operand[1] = x1; return 25; }
  598.   x1 = XEXP (x0, 0);
  599.   goto L240;
  600.  L241:
  601.   x1 = XEXP (x0, 1);
  602.   if (GET_CODE (x1) == TRUNCATE && GET_MODE (x1) == QImode && 1)
  603.     goto L242;
  604.   goto ret0;
  605.  L242:
  606.   x2 = XEXP (x1, 0);
  607.   if (register_operand (x2, SImode))
  608.     { recog_operand[1] = x2; return 39; }
  609.  L246:
  610.   if (register_operand (x2, HImode))
  611.     { recog_operand[1] = x2; return 40; }
  612.   goto ret0;
  613.  L214:
  614.   x1 = XEXP (x0, 1);
  615.   if (general_operand (x1, HImode))
  616.     { recog_operand[1] = x1; return 32; }
  617.   x1 = XEXP (x0, 0);
  618.   goto L248;
  619.  L249:
  620.   x1 = XEXP (x0, 1);
  621.   if (GET_MODE (x1) != HImode)
  622.     goto ret0;
  623.   if (GET_CODE (x1) == TRUNCATE && 1)
  624.     goto L250;
  625.   if (GET_CODE (x1) == ZERO_EXTEND && 1)
  626.     goto L254;
  627.   goto ret0;
  628.  L250:
  629.   x2 = XEXP (x1, 0);
  630.   if (register_operand (x2, SImode))
  631.     { recog_operand[1] = x2; return 41; }
  632.   goto ret0;
  633.  L254:
  634.   x2 = XEXP (x1, 0);
  635.   if (register_operand (x2, QImode))
  636.     { recog_operand[1] = x2; return 43; }
  637.   goto ret0;
  638.  L223:
  639.   x2 = XEXP (x1, 0);
  640.   if (register_operand (x2, HImode))
  641.     { recog_operand[0] = x2; goto L224; }
  642.  L208:
  643.   if (register_operand (x2, SImode))
  644.     { recog_operand[0] = x2; goto L209; }
  645.   goto L189;
  646.  L224:
  647.   x2 = XEXP (x1, 1);
  648.   if (GET_CODE (x2) == CONST_INT && XINT (x2, 0) == 8 && 1)
  649.     goto L225;
  650.   x2 = XEXP (x1, 0);
  651.   goto L208;
  652.  L225:
  653.   x2 = XEXP (x1, 2);
  654.   if (nonmemory_operand (x2, SImode))
  655.     { recog_operand[1] = x2; goto L226; }
  656.   x2 = XEXP (x1, 0);
  657.   goto L208;
  658.  L226:
  659.   x1 = XEXP (x0, 1);
  660.   if (nonmemory_operand (x1, SImode))
  661.     { recog_operand[2] = x1; return 34; }
  662.   x1 = XEXP (x0, 0);
  663.   x2 = XEXP (x1, 0);
  664.   goto L208;
  665.  L209:
  666.   x2 = XEXP (x1, 1);
  667.   if (GET_CODE (x2) == CONST_INT && XINT (x2, 0) == 8 && 1)
  668.     goto L210;
  669.   goto L189;
  670.  L210:
  671.   x2 = XEXP (x1, 2);
  672.   if (nonmemory_operand (x2, SImode))
  673.     { recog_operand[1] = x2; goto L211; }
  674.   goto L189;
  675.  L211:
  676.   x1 = XEXP (x0, 1);
  677.   if (nonmemory_operand (x1, SImode))
  678.     { recog_operand[2] = x1; return 27; }
  679.   x1 = XEXP (x0, 0);
  680.   goto L189;
  681.  L190:
  682.   x1 = XEXP (x0, 1);
  683.   if (general_operand (x1, SImode))
  684.     { recog_operand[1] = x1; return 22; }
  685.   x1 = XEXP (x0, 0);
  686.   goto L192;
  687.  L193:
  688.   x1 = XEXP (x0, 1);
  689.   if (GET_MODE (x1) != SImode)
  690.     goto ret0;
  691.  switch (GET_CODE (x1))
  692.   {
  693.   case MEM:
  694.   if (1)
  695.     goto L194;
  696.   break;
  697.   case ZERO_EXTRACT:
  698.   if (1)
  699.     goto L218;
  700.   break;
  701.   case ZERO_EXTEND:
  702.   if (1)
  703.     goto L258;
  704.   break;
  705.   case PLUS:
  706.   if (1)
  707.     goto L262;
  708.   break;
  709.   case MINUS:
  710.   if (1)
  711.     goto L272;
  712.   break;
  713.   case AND:
  714.   if (1)
  715.     goto L277;
  716.   break;
  717.   case IOR:
  718.   if (1)
  719.     goto L282;
  720.   break;
  721.   case XOR:
  722.   if (1)
  723.     goto L287;
  724.   break;
  725.   case NEG:
  726.   if (1)
  727.     goto L292;
  728.   break;
  729.   case NOT:
  730.   if (1)
  731.     goto L296;
  732.   break;
  733.   case ASHIFT:
  734.   if (1)
  735.     goto L356;
  736.   break;
  737.   case ASHIFTRT:
  738.   if (1)
  739.     goto L361;
  740.   break;
  741.   case LSHIFTRT:
  742.   if (1)
  743.     goto L366;
  744.   break;
  745.   }
  746.   goto ret0;
  747.  L194:
  748.   x2 = XEXP (x1, 0);
  749.   if (GET_CODE (x2) == PLUS && GET_MODE (x2) == SImode && 1)
  750.     goto L195;
  751.   goto ret0;
  752.  L195:
  753.   x3 = XEXP (x2, 0);
  754.   if (register_operand (x3, SImode))
  755.     { recog_operand[1] = x3; goto L196; }
  756.   goto ret0;
  757.  L196:
  758.   x3 = XEXP (x2, 1);
  759.   if (register_operand (x3, SImode))
  760.     { recog_operand[2] = x3; return 23; }
  761.   goto ret0;
  762.  L218:
  763.   x2 = XEXP (x1, 0);
  764.   if (register_operand (x2, HImode))
  765.     { recog_operand[1] = x2; goto L219; }
  766.  L203:
  767.   if (register_operand (x2, SImode))
  768.     { recog_operand[1] = x2; goto L204; }
  769.   goto ret0;
  770.  L219:
  771.   x2 = XEXP (x1, 1);
  772.   if (GET_CODE (x2) == CONST_INT && XINT (x2, 0) == 8 && 1)
  773.     goto L220;
  774.   x2 = XEXP (x1, 0);
  775.   goto L203;
  776.  L220:
  777.   x2 = XEXP (x1, 2);
  778.   if (nonmemory_operand (x2, SImode))
  779.     { recog_operand[2] = x2; return 33; }
  780.   x2 = XEXP (x1, 0);
  781.   goto L203;
  782.  L204:
  783.   x2 = XEXP (x1, 1);
  784.   if (GET_CODE (x2) == CONST_INT && XINT (x2, 0) == 8 && 1)
  785.     goto L205;
  786.   goto ret0;
  787.  L205:
  788.   x2 = XEXP (x1, 2);
  789.   if (nonmemory_operand (x2, SImode))
  790.     { recog_operand[2] = x2; return 26; }
  791.   goto ret0;
  792.  L258:
  793.   x2 = XEXP (x1, 0);
  794.   if (register_operand (x2, QImode))
  795.     { recog_operand[1] = x2; return 44; }
  796.   goto ret0;
  797.  L262:
  798.   x2 = XEXP (x1, 0);
  799.   if (nonmemory_operand (x2, SImode))
  800.     { recog_operand[1] = x2; goto L263; }
  801.   goto ret0;
  802.  L263:
  803.   x2 = XEXP (x1, 1);
  804.   if (nonmemory_operand (x2, SImode))
  805.     { recog_operand[2] = x2; return 48; }
  806.  L268:
  807.   if (big_immediate_operand (x2, SImode))
  808.     { recog_operand[2] = x2; if (GET_CODE (operands[2]) == CONST_INT 
  809.    && (unsigned) (INTVAL (operands[2]) + 0x8000000) < 0x10000000) return 49; }
  810.   goto ret0;
  811.  L272:
  812.   x2 = XEXP (x1, 0);
  813.   if (register_operand (x2, SImode))
  814.     { recog_operand[1] = x2; goto L273; }
  815.   goto ret0;
  816.  L273:
  817.   x2 = XEXP (x1, 1);
  818.   if (nonmemory_operand (x2, SImode))
  819.     { recog_operand[2] = x2; return 50; }
  820.   goto ret0;
  821.  L277:
  822.   x2 = XEXP (x1, 0);
  823.   if (nonmemory_operand (x2, SImode))
  824.     { recog_operand[1] = x2; goto L278; }
  825.   goto ret0;
  826.  L278:
  827.   x2 = XEXP (x1, 1);
  828.   if (nonmemory_operand (x2, SImode))
  829.     { recog_operand[2] = x2; return 51; }
  830.   goto ret0;
  831.  L282:
  832.   x2 = XEXP (x1, 0);
  833.   if (nonmemory_operand (x2, SImode))
  834.     { recog_operand[1] = x2; goto L283; }
  835.   goto ret0;
  836.  L283:
  837.   x2 = XEXP (x1, 1);
  838.   if (nonmemory_operand (x2, SImode))
  839.     { recog_operand[2] = x2; return 52; }
  840.   goto ret0;
  841.  L287:
  842.   x2 = XEXP (x1, 0);
  843.   if (nonmemory_operand (x2, SImode))
  844.     { recog_operand[1] = x2; goto L288; }
  845.   goto ret0;
  846.  L288:
  847.   x2 = XEXP (x1, 1);
  848.   if (nonmemory_operand (x2, SImode))
  849.     { recog_operand[2] = x2; return 53; }
  850.   goto ret0;
  851.  L292:
  852.   x2 = XEXP (x1, 0);
  853.   if (nonmemory_operand (x2, SImode))
  854.     { recog_operand[1] = x2; return 54; }
  855.   goto ret0;
  856.  L296:
  857.   x2 = XEXP (x1, 0);
  858.   if (register_operand (x2, SImode))
  859.     { recog_operand[1] = x2; return 55; }
  860.   goto ret0;
  861.  L356:
  862.   x2 = XEXP (x1, 0);
  863.   if (register_operand (x2, SImode))
  864.     { recog_operand[1] = x2; goto L357; }
  865.   goto ret0;
  866.  L357:
  867.   x2 = XEXP (x1, 1);
  868.   if (immediate_operand (x2, SImode))
  869.     { recog_operand[2] = x2; if (GET_CODE (operands[2]) == CONST_INT) return 68; }
  870.   goto ret0;
  871.  L361:
  872.   x2 = XEXP (x1, 0);
  873.   if (register_operand (x2, SImode))
  874.     { recog_operand[1] = x2; goto L362; }
  875.   goto ret0;
  876.  L362:
  877.   x2 = XEXP (x1, 1);
  878.   if (immediate_operand (x2, SImode))
  879.     { recog_operand[2] = x2; if (GET_CODE (operands[2]) == CONST_INT) return 69; }
  880.   goto ret0;
  881.  L366:
  882.   x2 = XEXP (x1, 0);
  883.   if (register_operand (x2, SImode))
  884.     { recog_operand[1] = x2; goto L367; }
  885.   goto ret0;
  886.  L367:
  887.   x2 = XEXP (x1, 1);
  888.   if (immediate_operand (x2, SImode))
  889.     { recog_operand[2] = x2; if (GET_CODE (operands[2]) == CONST_INT) return 70; }
  890.   goto ret0;
  891.  L235:
  892.   x1 = XEXP (x0, 1);
  893.   if (general_operand (x1, DImode))
  894.     { recog_operand[1] = x1; return 37; }
  895.   goto ret0;
  896.  L238:
  897.   x1 = XEXP (x0, 1);
  898.   if (general_operand (x1, SFmode))
  899.     { recog_operand[1] = x1; return 38; }
  900.   x1 = XEXP (x0, 0);
  901.   goto L303;
  902.  L304:
  903.   x1 = XEXP (x0, 1);
  904.   if (GET_MODE (x1) != SFmode)
  905.     goto ret0;
  906.  switch (GET_CODE (x1))
  907.   {
  908.   case PLUS:
  909.   if (1)
  910.     goto L305;
  911.   break;
  912.   case MINUS:
  913.   if (1)
  914.     goto L315;
  915.   break;
  916.   case MULT:
  917.   if (1)
  918.     goto L325;
  919.   break;
  920.   case DIV:
  921.   if (1)
  922.     goto L335;
  923.   break;
  924.   case NEG:
  925.   if (1)
  926.     goto L344;
  927.   break;
  928.   case ABS:
  929.   if (1)
  930.     goto L352;
  931.   break;
  932.   }
  933.   goto ret0;
  934.  L305:
  935.   x2 = XEXP (x1, 0);
  936.   if (register_operand (x2, SFmode))
  937.     { recog_operand[1] = x2; goto L306; }
  938.   goto ret0;
  939.  L306:
  940.   x2 = XEXP (x1, 1);
  941.   if (register_operand (x2, SFmode))
  942.     { recog_operand[2] = x2; if (TARGET_FPU) return 57; }
  943.   goto ret0;
  944.  L315:
  945.   x2 = XEXP (x1, 0);
  946.   if (register_operand (x2, SFmode))
  947.     { recog_operand[1] = x2; goto L316; }
  948.   goto ret0;
  949.  L316:
  950.   x2 = XEXP (x1, 1);
  951.   if (register_operand (x2, SFmode))
  952.     { recog_operand[2] = x2; if (TARGET_FPU) return 59; }
  953.   goto ret0;
  954.  L325:
  955.   x2 = XEXP (x1, 0);
  956.   if (register_operand (x2, SFmode))
  957.     { recog_operand[1] = x2; goto L326; }
  958.   goto ret0;
  959.  L326:
  960.   x2 = XEXP (x1, 1);
  961.   if (register_operand (x2, SFmode))
  962.     { recog_operand[2] = x2; if (TARGET_FPU) return 61; }
  963.   goto ret0;
  964.  L335:
  965.   x2 = XEXP (x1, 0);
  966.   if (register_operand (x2, SFmode))
  967.     { recog_operand[1] = x2; goto L336; }
  968.   goto ret0;
  969.  L336:
  970.   x2 = XEXP (x1, 1);
  971.   if (register_operand (x2, SFmode))
  972.     { recog_operand[2] = x2; if (TARGET_FPU) return 63; }
  973.   goto ret0;
  974.  L344:
  975.   x2 = XEXP (x1, 0);
  976.   if (nonmemory_operand (x2, SFmode))
  977.     { recog_operand[1] = x2; if (TARGET_FPU) return 65; }
  978.   goto ret0;
  979.  L352:
  980.   x2 = XEXP (x1, 0);
  981.   if (nonmemory_operand (x2, SFmode))
  982.     { recog_operand[1] = x2; if (TARGET_FPU) return 67; }
  983.   goto ret0;
  984.  L229:
  985.   x1 = XEXP (x0, 1);
  986.   if (GET_MODE (x1) == DFmode && 1)
  987.     { recog_operand[1] = x1; if (GET_CODE (operands[1]) == CONST_DOUBLE) return 35; }
  988.  L232:
  989.   if (general_operand (x1, DFmode))
  990.     { recog_operand[1] = x1; return 36; }
  991.   x1 = XEXP (x0, 0);
  992.   goto L298;
  993.  L299:
  994.   x1 = XEXP (x0, 1);
  995.   if (GET_MODE (x1) != DFmode)
  996.     goto ret0;
  997.  switch (GET_CODE (x1))
  998.   {
  999.   case PLUS:
  1000.   if (1)
  1001.     goto L300;
  1002.   break;
  1003.   case MINUS:
  1004.   if (1)
  1005.     goto L310;
  1006.   break;
  1007.   case MULT:
  1008.   if (1)
  1009.     goto L320;
  1010.   break;
  1011.   case DIV:
  1012.   if (1)
  1013.     goto L330;
  1014.   break;
  1015.   case NEG:
  1016.   if (1)
  1017.     goto L340;
  1018.   break;
  1019.   case ABS:
  1020.   if (1)
  1021.     goto L348;
  1022.   break;
  1023.   }
  1024.   goto ret0;
  1025.  L300:
  1026.   x2 = XEXP (x1, 0);
  1027.   if (register_operand (x2, DFmode))
  1028.     { recog_operand[1] = x2; goto L301; }
  1029.   goto ret0;
  1030.  L301:
  1031.   x2 = XEXP (x1, 1);
  1032.   if (register_operand (x2, DFmode))
  1033.     { recog_operand[2] = x2; if (TARGET_FPU) return 56; }
  1034.   goto ret0;
  1035.  L310:
  1036.   x2 = XEXP (x1, 0);
  1037.   if (register_operand (x2, DFmode))
  1038.     { recog_operand[1] = x2; goto L311; }
  1039.   goto ret0;
  1040.  L311:
  1041.   x2 = XEXP (x1, 1);
  1042.   if (register_operand (x2, DFmode))
  1043.     { recog_operand[2] = x2; if (TARGET_FPU) return 58; }
  1044.   goto ret0;
  1045.  L320:
  1046.   x2 = XEXP (x1, 0);
  1047.   if (register_operand (x2, DFmode))
  1048.     { recog_operand[1] = x2; goto L321; }
  1049.   goto ret0;
  1050.  L321:
  1051.   x2 = XEXP (x1, 1);
  1052.   if (register_operand (x2, DFmode))
  1053.     { recog_operand[2] = x2; if (TARGET_FPU) return 60; }
  1054.   goto ret0;
  1055.  L330:
  1056.   x2 = XEXP (x1, 0);
  1057.   if (register_operand (x2, DFmode))
  1058.     { recog_operand[1] = x2; goto L331; }
  1059.   goto ret0;
  1060.  L331:
  1061.   x2 = XEXP (x1, 1);
  1062.   if (register_operand (x2, DFmode))
  1063.     { recog_operand[2] = x2; if (TARGET_FPU) return 62; }
  1064.   goto ret0;
  1065.  L340:
  1066.   x2 = XEXP (x1, 0);
  1067.   if (nonmemory_operand (x2, DFmode))
  1068.     { recog_operand[1] = x2; if (TARGET_FPU) return 64; }
  1069.   goto ret0;
  1070.  L348:
  1071.   x2 = XEXP (x1, 0);
  1072.   if (nonmemory_operand (x2, DFmode))
  1073.     { recog_operand[1] = x2; if (TARGET_FPU) return 66; }
  1074.   goto ret0;
  1075.  ret0: return -1;
  1076. }
  1077.  
  1078. int
  1079. recog (x0, insn)
  1080.      register rtx x0;
  1081.      rtx insn;
  1082. {
  1083.   register rtx x1, x2, x3, x4, x5;
  1084.   rtx x6, x7, x8, x9, x10, x11;
  1085.   int tem;
  1086.  L0:
  1087.   if (GET_CODE (x0) == SET && 1)
  1088.     goto L1;
  1089.   if (GET_CODE (x0) == PARALLEL && XVECLEN (x0, 0) == 2 && 1)
  1090.     goto L373;
  1091.   if (GET_CODE (x0) == CALL && 1)
  1092.     goto L388;
  1093.   goto ret0;
  1094.  L1:
  1095.   return recog_2 (x0, insn);
  1096.  L373:
  1097.   x1 = XVECEXP (x0, 0, 0);
  1098.   if (GET_CODE (x1) == SET && 1)
  1099.     goto L374;
  1100.   goto ret0;
  1101.  L374:
  1102.   x2 = XEXP (x1, 0);
  1103.   if (x2 == pc_rtx && 1)
  1104.     goto L375;
  1105.   goto ret0;
  1106.  L375:
  1107.   x2 = XEXP (x1, 1);
  1108.   if (register_operand (x2, SImode))
  1109.     { recog_operand[0] = x2; goto L376; }
  1110.   goto ret0;
  1111.  L376:
  1112.   x1 = XVECEXP (x0, 0, 1);
  1113.   if (GET_CODE (x1) == USE && 1)
  1114.     goto L377;
  1115.   goto ret0;
  1116.  L377:
  1117.   x2 = XEXP (x1, 0);
  1118.   if (GET_CODE (x2) == LABEL_REF && 1)
  1119.     goto L378;
  1120.   goto ret0;
  1121.  L378:
  1122.   x3 = XEXP (x2, 0);
  1123.   if (1)
  1124.     { recog_operand[1] = x3; return 76; }
  1125.   goto ret0;
  1126.  L388:
  1127.   x1 = XEXP (x0, 0);
  1128.   if (GET_CODE (x1) == MEM && GET_MODE (x1) == SImode && 1)
  1129.     goto L389;
  1130.  L380:
  1131.   if (memory_operand (x1, SImode))
  1132.     { recog_operand[0] = x1; goto L381; }
  1133.   goto ret0;
  1134.  L389:
  1135.   x2 = XEXP (x1, 0);
  1136.   if (GET_MODE (x2) == SImode && 1)
  1137.     { recog_operand[0] = x2; goto L390; }
  1138.   goto L380;
  1139.  L390:
  1140.   x1 = XEXP (x0, 1);
  1141.   if (general_operand (x1, SImode))
  1142.     { recog_operand[1] = x1; if (GET_CODE (operands[0]) == SYMBOL_REF) return 79; }
  1143.   x1 = XEXP (x0, 0);
  1144.   goto L380;
  1145.  L381:
  1146.   x1 = XEXP (x0, 1);
  1147.   if (general_operand (x1, SImode))
  1148.     { recog_operand[1] = x1; return 77; }
  1149.   goto ret0;
  1150.  ret0: return -1;
  1151. }
  1152.